<?php

class Controller extends System {

  public function __construct() {
    parent::__construct();
    session_start();
  }

  /**
   * Inclui o arquivo da camada de visão e passa os valores para a mesma caso exista
   * @param $nome // nome da view a ser chamada
   * @param $vars // valores passado do controller para a view
   * @access protected
   * @return void
   */
  protected function view($nome, $vars = null) {
    /* verifica se $vars realmente existe e é valido */
    if (isset($vars['msg']))
      $vars['msg'] = "<div class=\"msg {$vars['msg']['type']}\">{$vars['msg']['mensagem']}</div>";
    if (is_array($vars) && count($vars) > 0) {
      /* adciona o prefixo view antes de todas variaveis que estao vindo do controller */
      extract($vars, EXTR_PREFIX_ALL, 'view');
    }

    return require_once(VIEWS . $nome . '.php');
    exit();
  }

  /**
   * Verifica se todos os campos passados estão preenchidos. Retornando true se validar
   * @param array um vetor com todos os campos a ser verificado
   * @access protected
   * @return boolean
   */
  protected function validar($campos) {
    if (!is_array($campos)) {
      if ($campos == "")
        return false;
    }else {
      foreach ($campos as $campo) {
        if ($campo == "")
          return false;
      }
    }
    return true;
  }

  protected function redirect($controller = "") {
    $base_url = base_url();
    echo "<META HTTP-EQUIV=Refresh CONTENT='1; URL={$base_url}{$controller}'>";
  }

  protected function library($nome) {
    if (file_exists(LIBRARY . $nome . '.php'))
      return require_once(LIBRARY . $nome . '.php');
    else
      echo "Library not exists";
    exit();
  }

  protected function loadHome($dados = null) {
    $db = new IdeiasModel();
    $dados['ideias'] = $db->query("Call sp_selecionar_ideias_ativa();");
    $this->view("homeView", $dados);
  }  
}

?>